성능·관측·로그 용어

프로파일링, 메모리, 압축, 직렬화 포맷, 로그와 메트릭 등 성능 분석·운영 용어

  • 용어 22개

profiling / profiler (프로파일링)

프로그램이 CPU 시간이나 메모리를 어디서 쓰는지 측정하는 것 / 그 도구.

flame graph (플레임 그래프)

함수 호출 스택별로 CPU 사용 시간을 쌓아 올려 보여 주는 그래프.

perf / eBPF

perf는 리눅스 커널 수준 성능 분석 도구, eBPF는 커널을 고치지 않고 커널 안에 작은 프로그램을 넣어 이벤트를 수집하는 기술.

context switching (컨텍스트 스위칭)

CPU가 실행하던 스레드·프로세스를 다른 것으로 바꾸는 것.

run queue

CPU를 받기 위해 대기 중인 실행 가능한 스레드의 줄.

CPU steal

가상머신 환경에서 다른 VM이 물리 CPU를 가져가서 내 VM이 CPU를 쓰지 못한 시간.

heap / heap dump

heap은 프로그램이 동적으로 할당하는 메모리 영역, heap dump는 그 순간의 스냅샷.

GC (Garbage Collection / garbage collector)

더 이상 참조되지 않아 쓸 수 없게 된 메모리를 런타임이 자동으로 찾아 해제하는 기능(또는 그 일을 하는 구성 요소).

  • Java, Go, Python, C# 등에 있고, C/C++처럼 직접 malloc/free하는 언어에는 없다.
  • GC가 도는 동안 애플리케이션이 잠깐 멈추는 시간(pause, stop-the-world)이 생길 수 있어 GC 로그로 빈도와 멈춤 시간을 본다.
  • GC가 있어도 불필요한 참조가 남아 있으면 메모리 누수가 생긴다.
  • 학습 노트: 메모리 구조 · 성능 분석 도구와 관측 - perf·flame graph·eBPF·메모리

RSS / OOM Kill

RSS는 프로세스가 실제로 차지한 물리 메모리, OOM Kill은 메모리가 부족할 때 OS나 컨테이너 런타임이 프로세스를 강제 종료하는 것.

mmap / page cache

mmap은 파일을 메모리 주소 공간에 연결해 읽고 쓰는 방식, page cache는 OS가 읽은 파일 내용을 메모리에 캐시해 두는 것.

memory allocator (malloc, jemalloc)

malloc/free로 메모리를 요청하고 반납할 때 실제로 OS에서 받아 잘라 주는 라이브러리. 리눅스 기본은 glibc malloc, 대안으로 jemalloc 등이 있다.

압축 (gzip, zstd) / threshold

데이터를 줄여 전송량이나 저장 공간을 아끼는 것.

Protobuf / Avro (바이너리 포맷)

JSON 같은 텍스트가 아닌 바이너리로 직렬화하는 포맷. 더 작고 빠르다.

observability (관측 가능성)

시스템 내부 상태를 로그, 메트릭, 추적(trace)으로 밖에서 알 수 있게 하는 능력.

metric (메트릭)

시간에 따라 수치로 집계한 지표. 요청 수, 지연 시간, 에러율, 큐 길이 등.

percentile (p50 / p95 / p99)

응답 시간을 작은 순으로 줄 세웠을 때 상위 몇 %의 값. p99 = 100번 중 99번은 이 시간 안에 끝난다.

structured log (정형 로그)

JSON처럼 필드가 정해진 형식으로 남긴 로그. 검색과 집계가 쉽다.

appender

로그를 어디로 보낼지(파일, 콘솔, Kafka, 알림 등) 정하는 Logback 같은 로깅 프레임워크의 구성 요소.

masking (마스킹)

개인정보나 카드번호 같은 민감한 값을 일부 가려서 남기는 것.

async logging / neverBlock

로그를 큐에 넣고 별도 스레드가 전송하는 방식. 큐가 가득 차면 기본은 애플리케이션 스레드가 기다린다(blocking).

  • Logback의 neverBlock=true는 큐가 가득 찼을 때 로그를 버리고 서비스는 계속 동작하게 한다. 그러면 로그 유실이 조용히 일어나므로 버려진 로그 수와 큐 사용량을 메트릭으로 감시해야 한다.
  • 전송 실패 대비로 재시도하고, 그래도 안 되면 로컬 파일에 남겼다가 나중에 다시 보내는 방식도 쓴다.
  • 학습 노트: 성능 분석 도구와 관측 - perf·flame graph·eBPF·메모리 · 멀티스레드 로깅

slow log / slow query

기준 시간보다 오래 걸린 쿼리(DB)나 명령(Redis SLOWLOG)을 기록한 로그.

ELK stack

Elasticsearch(저장·검색), Logstash(수집·가공), Kibana(시각화)를 묶어 로그를 모으고 검색하는 구성.